package com.lcm.fas.controller;

import java.io.File;
import java.util.List;

import com.lcm.fas.model.FileInfo;
import com.lcm.fas.utils.FileUtils;
import com.lcm.fas.utils.FileUtils2;

/**
 * 文件管理的controller（控制层）
 * @author lcm专用版
 */
public class FileController {
	/**
	 * 递归获取指定路径下的所有文件，文件夹，并输出
	 */
	public static List<FileInfo> getFiles(String path) {
		return FileUtils.getFiles(path);
	}
	
	/**
	 * 删除指定目录下的所有文件
	 * @return
	 */
	public static boolean deleteFile(String path) {
		return FileUtils.deleteFile(path);
	}
	
	/**
	 * 文件重命名
	 * @param path
	 * @param newName
	 * @return
	 */
	public static boolean reName(String path,String newName) {
		return FileUtils.reName(path, newName);
	}

	/**
	 * 创建文件夹/文件 OK
	 * @param dirName
	 * @return
	 */
	public static boolean addFileOrDir(String newDirPath,String type) {
		return FileUtils.addFileOrDir(newDirPath, type);
	}
	
	/**
	 * 根据类型返回所有文件
	 * @param file
	 * @param types
	 * @return
	 */
	public static List<List<FileInfo>> getFilesByType(File file){
		FileUtils2 fileUtils = new FileUtils2();
		fileUtils.getAllFileByType(file);
		List<List<FileInfo>> files = FileUtils2.files;
		return files;
	}
	
	public static List<FileInfo> searchFile(File file,String search){
		FileUtils fileUtils = new FileUtils();
		fileUtils.searchFiles(file, search);
		List<FileInfo> list = FileUtils.searchResult;
		return list;
	}
	
	/**
	 * 文件移动  ok
	 * @param path
	 * @param newname
	 * @return
	 */
	public static boolean moveFile(String src,String dest) {//文件移动（重命名路径）
        return FileUtils.moveFile(src, dest);
    }
	
	
	 /**
     * 复制文件或文件夹
     * 如果目标文件夹不存在则自动创建
     * 如果文件或文件夹已经存在则自动编号-copy n
     * @param src    源文件或文件夹绝对路径
     * @param dstDir 目标文件夹绝对路径
     * @return 是否成功复制文件或文件夹
     */
    public static boolean copy(String src, String dest) {
		return FileUtils.copy(src, dest);
	}
}
